import org.junit.Test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

/**
 * @author Rock
 * @create 2020-08-22 10:43
 */
public class List_5Zhong_Bianli {

    //使用多态方式创建对象
    private List<String> list = new ArrayList<>();
    //添加元素
    void addElement(){
        //添加元素到集合
        list.add("黄家驹");
        list.add("黄家强");
        list.add("黄贯中");
        list.add("叶世荣");
    }

    //1、使用Iterator接口遍历
    @Test
    public void bianli1(){
        addElement();
        Iterator<String> it = list.iterator();
        while(it.hasNext()){//判断是否有迭代元素
            System.out.println(it.next());//输出迭代出的元素
        }
    }

    //2、普通for循环遍历
    @Test
    public void bianli2() {
        addElement();
        for (int i = 0; i < list.size(); i++) {
            //通过get方法传递索引获取集合元素
            System.out.println(list.get(i));
        }
    }

    //3、增强for
    @Test
    public void bianli3(){
        addElement();
        for(String a : list) {
            System.out.println(a);
        }
    }

    //4、List集合自带迭代器
    @Test
    public void bianli4() {
        addElement();
        ListIterator<String> listli = list.listIterator();
        while (listli.hasNext()) {
            System.out.println(listli.next());
        }

    }

    //5、Lambda
    @Test
    public void bianli5() {
        addElement();
        list.forEach(
                item -> System.out.println(item)
        );
    }
}
